﻿using ModelLayer;
using System.Collections.Generic;

namespace DataAccessObjectLayer
{
    internal interface IDBReservation
    {
        /// <summary>
        /// Gets all reservations from the database.
        /// </summary>
        /// <returns>List{Reservation}.</returns>
        List<Reservation> GetAllReservation();

        /// <summary>
        /// Gets a reservation from the database.
        /// </summary>
        /// <param name="resvId">The resv identifier.</param>
        /// <returns>Reservation.</returns>
        Reservation GetReservation(long resvId);

        /// <summary>
        /// Inserts a reservation in the database.
        /// </summary>
        /// <param name="resv">The resv.</param>
        /// <returns>The number of affected rows</returns>
        int InsertReservation(Reservation resv);

        /// <summary>
        /// Updates a reservation in the database.
        /// </summary>
        /// <param name="resv">The resv.</param>
        /// <returns>the number of affected rows</returns>
        int UpdateReservation(Reservation resv);

        /// <summary>
        /// Removes a reservation from the database.
        /// </summary>
        /// <param name="resvId">The resv id.</param>
        /// <returns>the number of affected rows</returns>
        int RemoveReservation(long resvId);
    }
}